﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Ys.Base.Common
{
    /// <summary>
    /// 扩展Int32功能
    /// </summary>
    public static class Int32Extensions
    {
        /// <summary>
        /// 向上整除
        /// 1.当num能被divideBy整除时,结果即为num/divideBy;
        /// 2.当num不能被divideBy整除时,结果为num/divideBy + 1;
        /// </summary>
        /// <param name="num">被除数,大于或者等于0</param>
        /// <param name="divideBy">除数,大于0</param>
        /// <returns>向上整除结果</returns>
        public static int CeilingDivide(this int num, int divideBy)
        {
            if (num < 0 || divideBy <= 0)
            {
                return 0;
            }

            return (num + divideBy - 1) / divideBy;

        }
        

        /// <summary>
        /// 将List 转为间隔字符串
        /// </summary>
        /// <param name="strlist"></param>
        /// <param name="Split"></param>
        /// <returns></returns>
        public static string ListToString(this List<int> strlist, char Split = ',')
        {
            StringBuilder str = new StringBuilder();
            foreach (var item in strlist)
            {
                str.Append(item.ToString() + Split);
            }
            return str.ToString();
        }

        /// <summary>
        /// 拓展 将字符串抓换为int
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static int StrToInt(this string str)
        {
            if (str.Isint())
            { return Convert.ToInt32(str); }
            else
            {
                return 0;
            }
        }
        /// <summary>
        /// 拓展 将字符串数组转换成int 数组
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static int[] strToIntArray(this string[] str)
        {
            return Array.ConvertAll(str, new Converter<string, int>(StrToInt));
        }

    

       

    }
}
